package mao.exaimnation.dji;

import java.util.Scanner;

/**
 * 作者：鉏飞祥
 * 链接：https://www.nowcoder.com/discuss/479143?type=all&order=time&pos=&page=1&channel=1009&source_id=search_all
 * 来源：牛客网
 *
 * 第一题：
 * 标准的单源最短路径问题，用迪杰斯特拉就可以，但是比较抽象，用算法4 的写发：优先队列+松弛顶点，复杂度 VlogV + E
 * 步骤：
 * 1 用一个数组w保存所有顶点的权值，权值的含义是起点到当前顶点的距离，初始起始点权值0，其余顶点正无穷
 * 2 弄一个优先队列，保存顶点，顶点权值越小越优先，然后把起始点加入队列
 * 3 循环，每次从队列删除一个权值最小的顶点x，然后对于每条从x出发的边x-y，如果w[x] + w(x,y) < w[y]) ,则更新w[y] 和 把y加入队列，直到队列为空，结束循环
 * 所以上述操作都是每次选择权值最小的，去更新w，所以说是松弛顶点，并且由于如果绕圈子肯定权值越绕越大，所以肯定不会绕圈子
 * 第二题
 * 01背包
 * 第三题：给定一个字符串，
 * 贪心删除拐点，最后删除多余的0
 */
public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        while (scanner.hasNext()){
             String next = scanner.next();
             int count = scanner.nextInt();
            char[] chars = next.toCharArray();
            for (int i = 1; i < chars.length; i++) {
                char cur = chars[i];
                for (int j = i-1; j >=0 ; j--) {
                    //贪心删除拐点。
                    if (chars[j] != '#' && cur < chars[j] && count>0){
                        chars[j] = '#';
                        count--;
                    }
                }
            }
            boolean flag = false;//用于标记前导零。
            StringBuilder builder = new StringBuilder();
            for (int i = 0; i < chars.length; i++){
                if (chars[i] != '#'){
                    if (chars[i] == '0' && !flag){}
                    else {
                      builder.append(chars[i]);
                      flag=true;
                    }
                }
            }
            String str = builder.toString();
            if (count > 0){  //如果最后 123456，这样的情况，也需要把后面的删除。
                str = str.substring(0,str.length()-count);
            }
            System.out.println( str);
        }

    }
}
